package cn.exrick.mapper;

import java.util.List;
import java.util.Map;

import cn.exrick.pojo.BasePojo;

public interface BaseMapper<T extends BasePojo> {
    /**
     * 通过主键查询
     *
     * @param id
     * @return
     */
    T findById(long id);

    /**
     * 查询List
     *
     * @return
     */
    List<T> findList(Map<String, Object> params);

    /**
     * 统计个数
     * @param params
     * @return
     */
    int countList(Map<String, Object> params);

    /**
     * 通过criteria查询List
     *
     * @return
     */
    List<T> findListByCriteria(Map<String, Object> params);

    /**
     * 通过criteria统计List
     *
     * @return
     */
    int countListByCriteria(Map<String, Object> params);

    /**
     * 获取所有
     *
     * @return
     */
    List<T> findAll();

    /**
     * 保存
     *
     * @param t
     * @return
     */
    long save(T t);

    /**
     * 更新
     *
     * @param t
     * @return
     */
    long update(T t);

    /**
     * 通过主键删除
     *
     * @param id
     */
    void delete(long id);
}
